Design of large scale electrical circuits is frequently automated by provision of a library of standard cells for performing various circuit functions. Such functions can include, for example, logic functions such as AND2 (a 2-input AND gate) and OR4 (a 4 input OR gate). A standard cell library typically provides multiple cells having the same function (e.g., AND2) and differing in drive strength (e.g., AND2X1, AND2X2, etc.). Cells having higher drive strength generally consume more electrical power, but can be used to drive a larger load, or can be used to improve circuit speed. Design of a large scale circuit can often be regarded as a problem of selecting cells from a library in accordance with a circuit functional design, where the drive strength of each cell is automatically selected to optimize circuit design. For a large scale circuit, this design optimization problem is highly nontrivial.
Typically, performance (e.g., speed), power consumption and size (e.g., total physical area) are the variables of greatest interest for optimizing circuit design, and therefore such information is typically provided for each cell in a standard cell library. Although the physical area of a cell is a simple parameter to quantify, cell power consumption and cell performance are much more difficult parameters to accurately quantify. In particular, accurate calculation of power consumption is of particular concern, since hard design constraints tend to be applied to performance, leaving total circuit power consumption as a quantity to be minimized in design. Thus power consumption (e.g., as measured by battery life) has emerged as a key point of product distinction in competitive markets.
Accordingly, ever more elaborate models for large scale circuit power consumption have been under development for some time now, to provide improved agreement between calculated power consumption and actual power consumption. Actual power consumption can then be reduced by use of such an accurate model during design optimization. State of the art power modeling accounts for the state-dependence of power consumption, often by extensive simulation of expected typical state sequences. The dependence of power consumption on switching or toggling rate is also included in state of the art power modeling, and here also it is necessary to simulate input sequences or make assumptions about the inputs. Such models also account for both dynamic power consumption (i.e., power consumed during switching) and leakage power consumption (i.e., power consumed other than during switching).
For some applications, reduction of leakage power consumption is especially important. Such applications include mobile telephones, since these battery-powered devices are typically in standby most of the time, and in active use the rest of the time. Power consumption during standby is primarily leakage power consumption, while dynamic power consumption occurs during active use. The state-dependence of power consumption discussed above applies to dynamic power. For example, a region of a computer processor chip can have a different dynamic power consumption depending on which application a user is running (e.g., a word processing program or a game). Thus modeling of dynamic power consumption requires assumptions about typical use, and such models become increasingly inaccurate as the difference between actual use and assumed use increases. The state-dependence (if any) of leakage power consumption is typically negligible in practice.
However, such high-fidelity modeling of power consumption makes great demands on processing resources, and is therefore a major driver for total design time. Accordingly, it would be a significant advance in the art to reduce design time of power-optimized large scale circuit designs.